[cbor] Use std::map::extract() in ReadMapContent Replace key clone with C++17 std::map::extract(). Bug: 40205788 Change-Id: I5c1ed740042e1299bcf9cd819a0a3affc5a07102 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6827825 Commit-Queue: Ho Cheung <hocheung@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Cr-Commit-Position: refs/heads/main@{#1498545} NOKEYCHECK=True GitOrigin-RevId: 6a9fdff0cd93cfe2c99badb475d8ee40f4230de2 
diff --git a/reader.cc b/reader.cc index d254afc..827d79a 100644 --- a/reader.cc +++ b/reader.cc 
@@ -405,10 +405,11 @@    Value::MapValue map;  map.reserve(cbor_map.size()); - // TODO(crbug.com/40205788): when Chromium switches to C++17, this code can be - // optimized using std::map::extract(). - for (auto& it : cbor_map) - map.emplace_hint(map.end(), it.first.Clone(), std::move(it.second)); + while (!cbor_map.empty()) { + auto node = cbor_map.extract(cbor_map.begin()); + map.emplace_hint(map.end(), std::move(node.key()), + std::move(node.mapped())); + }  return Value(std::move(map));  }